﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Loggerz.Interfaces.Log;
using Loggerz.Enumerations;
using Loggerz.Interfaces.User;
using System.Xml;
using CommonLibrary.Interfaces.Emailer;

namespace Loggerz.Interfaces.Repository
{
    public interface ILogRepositoryBase<ErrorType> where ErrorType:ILoggerBase
    {
        #region Properties
        
        List<ErrorType> ErrorList { get; set; }
        ErrorType CurrentError { get; set; }
        Level ErrorLevel { get; set; }
        IUserBase CurrentUser { get; set; }
        IEmailer Emailer { get; set; }
        
        bool OverrideErrorLevel { get; set; }

        #endregion

        #region Methods

        bool AddError(ErrorType errorObject);
        bool ClearErrors();
        bool HasErrors();
        
        int GetNextSequenceNumber();

        bool EmailErrors();

        #endregion

    }
}
